У цій статті я розповім, як ми описуємо схему бізнес-об'єктів
підприємства та як ми визначаємо ієрархічну структуру ідентифікаторів ланцюжків
цих об'єктів. Це визначить інтерфейс оператора системи, який зможе
працювати із системою без графічної оболонки.
Типові специфікації
Схема включає всю типову інформацію про бізнес-об'єкти.
Схема ERP модуля визначає базові об'єкти організаційної структури,
об'єкти платіжної системи PAY та системи обліку співробітників ACC.
ERP SPEC — Таблиці організаційної структури
PAY SPEC — Таблиці системи управління платежами
Гроші зберігаються у форматі {N,M}, де N — кількість знаків після коми,
а M — всі значущі цифри. Таким чином числа кодуються багатьма способами,
наприклад одиниця: 1 = {0,1} = {1,10} = {2,100}. Натомість операція множення в такій системі
виглядає просто mul({A,B},{C,D}) -> {A+C,B*D}.
PLM SPEC — Таблиці системи управління життєвим циклом
Створення кореневих ланцюжків
ERP BOOT або пусконалагодження підприємства - це процес заповнення первинних
словників та таблиць фундаментальної інформації. Головним чином це відображення
ієрархічної, організаційної структури підприємства.
Від працівника підприємства, його робочого місця,
його бренча, його локальної компанії,
бренчі які знаходяться в одній країні, і далі до групи міжнародних компаній з офісами в різних країнах світу,
і навіть до синдикатів транснаціональних корпорацій. Залежно від того, яку
організаційну структуру підприємства ви хочете,
так ви розкладаєте дані на первинні фіди.
ERP BOOT — Організаційна структура підприємства
Розглянемо приклад: компанія Quanterall, головний підрядник Aethernity, має офіси в
Софії, Варні (головний офіс компанії) та Пловдіві. Сама компанія здійснює операції тільки в Болгарії,
тому група складається з однієї компанії.
Додаємо зараз і надалі дані за допомогою звичайних list комбінаторів:
PAY BOOT — Обліковість CashFlow
Управління звітністю аутсорс підприємства досить просте:
1) ми приймаємо оплати за інвойсами, які були виставлені клієнтам, періодично та регулярно один раз на місяць;
2) ми виплачуємо зарплати щомісяця. Тому фолди групуються календарно
і зипуються помісячно.
PLM BOOT — Бюджетування проектів
Ініціалізація погодинна для кожного співробітника за проектом.
Цей список буде використовуватись у майбутньому для розподілу
виплат за опціонами.
Виплати за відсотками на субконто проектно:
За роботу з даними відповідає бібліотека KVS, як працювати з нею читайте у попередніх
випусках журналу:
Весь код, який потрібен для створення фідів, ми зазвичай виносимо в додаток з назвою
ERP. Для кожного конкретного підприємства ми використовуємо свою Github
організацію, можна навіть інше ім'я репозиторію, але завжди це ж ім'я Erlang/OTP
додатка.
У цьому репозиторії будуть завжди якісь реальні дані компанії, яку ми автоматизуємо,
якщо вона дозволяє публікувати свою організаційну структуру, первинні дані та словники.
Робимо цей приватний репозиторій в окремих випадках. Самі додатки здатні
працювати з будь-якими структурами ERP.
Приклади запитів до сховища
Elixir прелюдія:
Вміст кореневої директорії БД підприємства:
Список компаній, що входять до групи підприємств:
Список бреч-офісів головної (і єдиної) компанії групи: